package com.module.home.widget

import android.content.Context
import android.graphics.Canvas
import android.graphics.Path
import android.graphics.RectF
import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatImageView
import com.common.base.app.extras.dp2px

/**
 * 作者：sosou
 * <p>
 * 版本：1.0
 * <p>
 * 创建日期：2022/10/12
 * <p>
 * 描述：
 * <p>
 * 修订历史：
 */
class CoverImageView : AppCompatImageView {
    /*圆角的半径，依次为左上角xy半径，右上角，右下角，左下角*/
    private var rids: FloatArray? = null

    constructor(context: Context) : super(context) {
        init(context)
    }

    private fun init(context: Context) {
        val r: Float = dp2px(6f)
        rids = floatArrayOf(r, r, r, r, 0.0f, 0.0f, 0.0f, 0.0f)
    }

    constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
        init(context)
    }

    constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(
        context,
        attrs,
        defStyleAttr
    ) {
        init(context)
    }

    override fun onDraw(canvas: Canvas) {
        if (rids != null) {
            drawView(canvas)
        }
        super.onDraw(canvas)
    }

    private fun drawView(canvas: Canvas) {
        val path = Path()
        val w = this.width
        val h = this.height
        path.addRoundRect(RectF(0f, 0f, w.toFloat(), h.toFloat()), rids!!, Path.Direction.CW)
        canvas.clipPath(path)
    }
}